<?php session_start();
$host  = $_SERVER['HTTP_HOST'];
if ($_SERVER['SERVER_NAME'] == 'localhost'){$uri="/kalender";}else{$uri="";}
if (!isset($_SESSION['id_user']) || $_SESSION['id_user']=='') {
	echo "<script language=Javascript> location.href='http://$host$uri/index.php'; </script>";	
}else{
	
	$id_user = $_SESSION['id_user'];	
	if (!is_object($bd)){	
		//me conecto a la base de datos
		require("../globals/Db.class.php");
		require("../globals/Conf.class.php");
		$bd=Db::getInstance();	
	}	
	if (!is_object($util)){	
		include("../globals/Util.class.php");		
		$util=Util::getInstance();
	}	
	$util->debugOn();
	
	//funcion que asigna un nombre
	function get_rand_id($length){
		$codelenght = $length;
		$newcode_length = 0;
		$newcode = "";
		while($newcode_length < $codelenght) {
			$part = rand(1,3);
			if($part==1){$a=48;$b=57;}  // Numbers
			if($part==2){$a=65;$b=90;}  // UpperCase
			if($part==3){$a=97;$b=122;} // LowerCase
			$code_part=chr(rand($a,$b));
			$newcode_length = $newcode_length + 1;
			$newcode = $newcode.$code_part;
		}	
		return $newcode;
	}
	
	function giveMeTheFileName($archivos, $i, $nombre){
		$ruta = $_SERVER["SCRIPT_FILENAME"];		
		if ($_SERVER['SERVER_NAME'] == 'localhost'){
			$ruta = explode("/",$ruta);
		}else{
			$ruta = explode("/",$ruta);
		}
		$aux = "";
		$separador = "";
		for ($j=0;$j < (sizeof($ruta)-2); $j++){
			$aux .= $separador . $ruta[$j];
			$separador = "/";
		}				
		
		$completeFilePath= $aux."/archivos/";
		$fileName = get_rand_id(20);
		$completeFilePath = $completeFilePath.$fileName;
		
		//verifico que sea un pdf y asigno la extension 
		if($archivos[$nombre]['type'][$i] == "application/pdf" && $archivos[$nombre]['size'][$i] != 0){
			$completeFilePath = $completeFilePath.".pdf";
			return array($completeFilePath,$fileName.".pdf");
		}else{			
	  		if ($archivos[$nombre]['type'][$i] != "application/pdf"){
	  			return "error_type";
	  		}else{
	  			return "error_upload";
	  		}			
	    }	
	}
	
	function giveMeDateTime($value){
		$data = explode("/",$value);
		$dia = $data[1];
		$mes = $data[0];
		$anio = $data[2];
		return $anio."-".$mes."-".$dia;	
	}

	
	if (!($util->administrarTiempoSesion())){
		echo "timeout";
	}else if (!($util->administrarAcceso("addFile"))){
		$params = print_r($_POST, true);
		$bd->log_alerta("Atencion!", "La IP ".$util->getRealIpAddr()." ha querido ejecutar 'addArchive.php' sin tener acceso. Los datos ingresado fueron: ".$params);
		echo "No tiene acceso para ejecutar este archivo, esta intromisi&oacute;n ha sido registrada y se ha avisado al administrador del sistema.";
	}else{
		
		$nombre_del_archivo = "";
		$nombre = null;
		$usuarioId = null;
		$vencimiento = '0000-00-00 00:00:00';
		$emision = '0000-00-00 00:00:00';
		$laboratorio = null;
		$certificadora = null;
		$observaciones = null;
		$marca = null;
		$modelo = null;
		$producto = null;
		$origen = null;
		$cantidad = null;
		$numCertificado = null;
		$caractDesc = null;	
		$caractDesc2 = null;
			
		//recupero datos comunes
		$tipo = $bd->san($_POST["tipo"]);	
		$nombre = $bd->san($_POST["nro_exp"]);
		$usuarioId = $bd->san($_POST["clienteAnexo"]);
		$observaciones = $bd->san($_POST["observaciones"]);
		
		
		$facturable = '1';
		$adondeVolver = "agregarArchivo.php";
					
		//recupero todos los datos x tipo
		if ($tipo == "formA"){		
			//no necesito mas nada		
		}else if ($tipo == "formB"){		
			$marca = $bd->san($_POST["marca"]);
			$modelo = $bd->san($_POST["modelo"]);
			$cantidad = $bd->san($_POST["cantidad"]);
			$caractDesc = $bd->san($_POST["descripcion"]);
			$adondeVolver = "agregarArchivoB.php";
		}else if ($tipo == "formBR"){
			$cantidad = $bd->san($_POST["cantidad"]);
			$caractDesc = $bd->san($_POST["bienmayor"]);
			$vencimiento = giveMeDateTime($bd->san($_POST["vencimiento"]));
			$adondeVolver = "agregarArchivoBR.php";
		}else if ($tipo == "formC"){	
			$cantidad = $bd->san($_POST["cantidad"]);
			$certificadora = $bd->san($_POST["certificadora"]);
			$numCertificado = $bd->san($_POST["nro_cert"]);
			$vencimiento = giveMeDateTime($bd->san($_POST["vencimiento"]));
			$laboratorio = $bd->san($_POST["laboratorio"]);
			$producto = $bd->san($_POST["producto"]);
			$marca = $bd->san($_POST["marca"]);
			$modelo = $bd->san($_POST["modelo"]);
			$origen = $bd->san($_POST["origen"]);
			$caractDesc = $bd->san($_POST["formViejo"]);
			$adondeVolver = "agregarArchivoC.php";
		}else if ($tipo == "formD"){	
			$cantidad = $bd->san($_POST["cantidad"]);
			$certificadora = $bd->san($_POST["certificadora"]);
			$numCertificado = $bd->san($_POST["nro_cert"]);
			$vencimiento = giveMeDateTime($bd->san($_POST["vencimiento"]));
			$laboratorio = $bd->san($_POST["laboratorio"]);
			$producto = $bd->san($_POST["producto"]);
			$marca = $bd->san($_POST["marca"]);
			$modelo = $bd->san($_POST["modelo"]);
			$caractDesc = $bd->san($_POST["serie"]);
			$origen = $bd->san($_POST["origen"]);	
			$adondeVolver = "agregarArchivoD.php";	
		}else if ($tipo == "formE"){	
			$cantidad = $bd->san($_POST["cantidad"]);
			$certificadora = $bd->san($_POST["certificadora"]);
			$numCertificado = $bd->san($_POST["nro_cert"]);
			$vencimiento = giveMeDateTime($bd->san($_POST["vencimiento"]));
			$laboratorio = $bd->san($_POST["laboratorio"]);
			$producto = $bd->san($_POST["producto"]);
			$marca = $bd->san($_POST["marca"]);
			$modelo = $bd->san($_POST["modelo"]);
			$origen = $bd->san($_POST["origen"]);
			$caractDesc = $bd->san($_POST["formViejo"]);
			$adondeVolver = "agregarArchivoE.php";		
		}else if ($tipo == "formSDU"){		
			$certificadora = $bd->san($_POST["certificadora"]);
			$numCertificado = $bd->san($_POST["nro_cert"]);
			$marca = $bd->san($_POST["marca"]);
			$modelo = $bd->san($_POST["modelo"]);
			$cantidad = $bd->san($_POST["cantidad"]);
			$origen = $bd->san($_POST["origen"]);
			$caractDesc = $bd->san($_POST["descripcion"]);
			$adondeVolver = "agregarArchivoSDU.php";		
		}else if ($tipo == "formLSDU"){		
			$vencimiento = giveMeDateTime($bd->san($_POST["vencimiento"]));
			$caractDesc = $bd->san($_POST["formViejo"]);
			$adondeVolver = "agregarArchivoLSDU.php";		
		}else if ($tipo == "formNota206"){		
			$producto = $bd->san($_POST["producto"]);
			$marca = $bd->san($_POST["marca"]);
			$modelo = $bd->san($_POST["modelo"]);
			$origen = $bd->san($_POST["origen"]);
			$cantidad = $bd->san($_POST["cantidad"]);
			$caractDesc = $bd->san($_POST["carac"]);	
			$adondeVolver = "agregarArchivo206.php";
		}else if ($tipo == "ensayo"){		
			$certificadora = $bd->san($_POST["certificadora"]);		
			$adondeVolver = "agregarArchivoEnsayo.php";
			$facturable = '0';
		}else if ($tipo == "formTintas"){	
			$emision = giveMeDateTime($bd->san($_POST["emision"]));	
			$certificadora = $bd->san($_POST["certificadora"]);
			$numCertificado = $bd->san($_POST["nro_cert"]);
			$adondeVolver = "agregarArchivoTintas.php";		
		}else if ($tipo == "formDictamen"){		
			$emision = giveMeDateTime($bd->san($_POST["emision"]));	
			$adondeVolver = "agregarArchivoDictamen.php";		
		}else if ($tipo == "form453"){		
			$emision = giveMeDateTime($bd->san($_POST["emision"]));	
			$adondeVolver = "agregarArchivo453.php";		
		}else if ($tipo == "formSolicCert"){		
			$certificadora = $bd->san($_POST["certificadora"]);
			$emision = giveMeDateTime($bd->san($_POST["emision"]));	
			$adondeVolver = "agregarArchivoSolicCert.php";		
		}else if ($tipo == "formSDULab"){		
			$laboratorio = $bd->san($_POST["laboratorio"]);
			$emision = giveMeDateTime($bd->san($_POST["emision"]));	
			$adondeVolver = "agregarArchivoSDULab.php";		
		}else if ($tipo == "formSDUCert"){		
			$certificadora = $bd->san($_POST["certificadora"]);
			$emision = giveMeDateTime($bd->san($_POST["emision"]));	
			$adondeVolver = "agregarArchivoSDUCert.php";		
		}else if ($tipo == "formMuestra"){		
			$certificadora = $bd->san($_POST["certificadora"]);
			$emision = giveMeDateTime($bd->san($_POST["emision"]));
			$adondeVolver = "agregarArchivoMuestra.php";		
		}else if ($tipo == "formLacrado"){		
			$certificadora = $bd->san($_POST["certificadora"]);
			$emision = giveMeDateTime($bd->san($_POST["emision"]));
			$adondeVolver = "agregarArchivoLacrado.php";		
		}else if ($tipo == "formPilas"){		
			$certificadora = $bd->san($_POST["certificadora"]);
			$emision = giveMeDateTime($bd->san($_POST["emision"]));
			$adondeVolver = "agregarArchivoPilas.php";		
		}else if ($tipo == "formCertPilas"){
			$certificadora = $bd->san($_POST["certificadora"]);
			$emision = giveMeDateTime($bd->san($_POST["emision"]));
			$vencimiento = giveMeDateTime($bd->san($_POST["vencimiento"]));
			$numCertificado = $bd->san($_POST["nro_cert"]);
			$producto = $bd->san($_POST["producto"]);
			$marca = $bd->san($_POST["marca"]);
			$modelo = $bd->san($_POST["modelo"]);
			$origen = $bd->san($_POST["origen"]);
			$adondeVolver = "agregarArchivoCertPilas.php";		
		}else if ($tipo == "formDesarrollo"){		
			$emision = giveMeDateTime($bd->san($_POST["emision"]));
			$adondeVolver = "agregarArchivoDesarrollo.php";		
		}else if ($tipo == "form896"){	
			$producto = $bd->san($_POST["producto"]);
			$marca = $bd->san($_POST["marca"]);
			$modelo = $bd->san($_POST["modelo"]);
			$origen = $bd->san($_POST["origen"]);
			$cantidad = $bd->san($_POST["cantidad"]);
			$adondeVolver = "agregarArchivo896.php";		
		}else if ($tipo == "formChas"){		
			$emision = giveMeDateTime($bd->san($_POST["emision"]));
			$adondeVolver = "agregarArchivoChas.php";		
		}else if ($tipo == "formCertChas"){		
			$certificadora = $bd->san($_POST["certificadora"]);
			$numCertificado = $bd->san($_POST["nro_cert"]);
			$adondeVolver = "agregarArchivoCertChas.php";		
		}else if ($tipo == "formLCM"){		
			$certificadora = $bd->san($_POST["certificadora"]);
			$numCertificado = $bd->san($_POST["nro_cert"]);
			$adondeVolver = "agregarArchivoLCM.php";		
		}else if ($tipo == "formLCM2"){		
			$emision = giveMeDateTime($bd->san($_POST["emision"]));
			$adondeVolver = "agregarArchivoLCM2.php";		
		}else if ($tipo == "formAduana"){		
			$emision = giveMeDateTime($bd->san($_POST["emision"]));
			$numCertificado = $bd->san($_POST["nro_cert"]);
			$adondeVolver = "agregarArchivoAduana.php";		
		}else if ($tipo == "formCoord"){		
			$emision = giveMeDateTime($bd->san($_POST["emision"]));
			$numCertificado = $bd->san($_POST["nro_cert"]);
			$adondeVolver = "agregarArchivoCoord.php";		
		}else if ($tipo == "form924"){		
			$caractDesc = $bd->san($_POST["carac"]);
			$marca = $bd->san($_POST["marca"]);
			$modelo = $bd->san($_POST["modelo"]);
			$origen = $bd->san($_POST["origen"]);
			$producto = $bd->san($_POST["producto"]);
			$cantidad = $bd->san($_POST["cantidad"]);	
			$adondeVolver = "agregarArchivo924.php";
		}else if ($tipo == "formSDUBaja"){		
			$emision = giveMeDateTime($bd->san($_POST["emision"]));
			$caractDesc = $bd->san($_POST["formViejo"]);
			$adondeVolver = "agregarArchivoSDUBaja.php";
		}else if ($tipo == "formPG"){		
			$certificadora = $bd->san($_POST["certificadora"]);
			$emision = giveMeDateTime($bd->san($_POST["emision"]));
			$numCertificado = $bd->san($_POST["nro_cert"]);
			$producto = $bd->san($_POST["producto"]);
			$cantidad = $bd->san($_POST["cantidad"]);
			$marca = $bd->san($_POST["marca"]);
			$modelo = $bd->san($_POST["modelo"]);
			$origen = $bd->san($_POST["origen"]);
			$laboratorio = $bd->san($_POST["laboratorio"]);
			$adondeVolver = "agregarArchivoPG.php";
		}else if ($tipo == "formSDUPG"){		
			$certificadora = $bd->san($_POST["certificadora"]);
			$numCertificado = $bd->san($_POST["nro_cert"]);
			$producto = $bd->san($_POST["producto"]);
			$cantidad = $bd->san($_POST["cantidad"]);
			$marca = $bd->san($_POST["marca"]);
			$modelo = $bd->san($_POST["modelo"]);
			$origen = $bd->san($_POST["origen"]);
			$caractDesc = $bd->san($_POST["carac"]);
			$caractDesc2 = $bd->san($_POST["carac2"]);
			$adondeVolver = "agregarArchivoSDUPG.php";
		}else{		
			//error				
		}			
			
		
		//vamos por los archivos!
		if(!empty($_FILES)) {	
			set_time_limit(0);
			//el metodo giveMeTheFileName devuelve un array con (path, nombre) si todo esta bien, y strings de error si hay errores
			$nombres = giveMeTheFileName($_FILES, 0, "archivo");	
										
			if ($nombres != "error_type" && $nombres != "error_upload") {
				$file_name = $nombres[1]; //nombre del pdf principal
				$path = $nombres[0];				
				$loCopio = move_uploaded_file($_FILES['archivo']['tmp_name'][0], $path);
				if ($loCopio) {
					//echo("lo copio: $path");
					$todo_joya = true; 
				}else{
					//echo("NO lo copio: $path");
					$nombres = "not_copy_allowed";
					$todo_joya = false; 
				}
			}else{		
				$todo_joya = false;
			}		
		}else{
			$todo_joya = false;
			$nombres = "no_files";
		}
		
		
			
		// Hay campos en blanco
		if(!$todo_joya) {		
			echo "<script language=Javascript> location.href='http://$host$uri/$adondeVolver?error=$nombres'; </script>";		
		}else{
			
			$query = "INSERT INTO archivos (nombre, path, tipo, fecha_subida, usuario_id, vencimiento, emision, uploader_id, laboratorio, certificadora, observaciones, marca, modelo, producto, origen, cantidad, numero_cert, caract_desc, caract_desc2, facturable)  ";
			$query .= " VALUES ('$nombre','$file_name','$tipo',now(),'$usuarioId','$vencimiento','$emision',$id_user,'$laboratorio','$certificadora','$observaciones','$marca', '$modelo', '$producto','$origen','$cantidad','$numCertificado','$caractDesc', '$caractDesc2', $facturable)";      		
			$result = $bd->eje($query);
			
			//echo($query);	
			
			if($result){			
				// si pude guadar el archivo, tengo que hacer algunas otras cosas:
				// - si vino por renovacion, elimino el anterior.
				if (($tipo == "formE" || $tipo == "formC") && ($caractDesc!="" && strlen($caractDesc)>1)){
					$query_aux = "update archivos set deleted=1 where id = $caractDesc;";
					$bd->eje($query_aux);
					//Aclaracion: caractDesc es donde viene el nombre de formViejo.
				}else if ($tipo == "formLSDU"){
					//$query_aux = "update archivos set deleted=1 where id = $caractDesc;";
					//$bd->eje($query_aux);
					//Aclaracion: caractDesc es donde viene el nombre de formViejo.
				}else if ($tipo == "formSDUBaja"){
					$query_aux = "update archivos set deleted=1 where id = $caractDesc;";
					$bd->eje($query_aux);
					//Aclaracion: caractDesc es donde viene el nombre de formViejo.
				}
							
				// -Guardo el log por auditoria.
				$query = "INSERT INTO logs (usuario_id, accion, fecha) values ($id_user, 'Se ha agregado un archivo, ID: $nombre', now());";
				$bd->eje($query);
				echo "<script language=Javascript> location.href='http://$host$uri/$adondeVolver?added=ok&n=$nombre'; </script>";	
				
			}else{			
				echo "<script language=Javascript> location.href='http://$host$uri/$adondeVolver?added=nok'; </script>";
			}
			
		}
	}
}
?>